home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-03-16 | 1.4 KB | 50 lines | [TEXT/MMCC] |
- /************************************************************************/
- /* Project...: Standard C++ Library */
- /* Name......: NewMore.cp */
- /* Purpose...: standard C++ library */
- /* Copyright.: ©Copyright 1993-95 by metrowerks inc */
- /************************************************************************/
-
- #include <new.h>
- #include <Memory.h>
- #include <CPlusLib.h>
-
- #ifdef __MC68K__
- #pragma a6frames on
- #endif
-
- void (*new_handler)();
-
- extern void (*set_new_handler (void (*new_new_handler) ())) ()
- {
- void (*old_new_handler)() = new_handler;
- new_handler = new_new_handler;
- return old_new_handler;
- }
-
- /************************************************************************/
- /* Purpose..: Allocate memory (handle) */
- /* Input....: size of memory to allocate */
- /* Return...: handle to memory or 0L */
- /************************************************************************/
- void *__new_hdl(size_t size)
- {
- void *ptr;
-
- while((ptr=NewHandle(size))==NULL)
- {
- if(new_handler) new_handler(); else return(NULL);
- }
- return(ptr);
- }
-
- /************************************************************************/
- /* Purpose..: Dispose memory (handle) */
- /* Input....: handle to memory or 0L (no action if 0L) */
- /* Return...: --- */
- /************************************************************************/
- void __del_hdl(void *hdl)
- {
- if(hdl) DisposeHandle((Handle)hdl);
- }
-